package com.cs.beneficios.web.action;
import com.cs.beneficios.business.entity.AtributosDAO;
import com.cs.beneficios.business.model.AtributoVO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.beneficios.common.entity.Consultas;
import java.sql.SQLException;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
//import org.apache.struts.action.ActionError;
//import org.apache.struts.action.ActionErrors;
import java.io.IOException;
import javax.servlet.ServletException;

public class ActivacionCorrectaAction extends Action 
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
     //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
	 ConnectionFactory cf = new ConnectionFactory();
     Consultas objCons = new Consultas(cf);
     try{
         HttpSession session = request.getSession();
         String strCodSubpro = (String)session.getAttribute("codsubpro");
         Collection cAtributos = null;   
    
         List lListaInactivos = (List)session.getAttribute("ListaInactivos");
         List lError = new LinkedList();
         int tamano = lListaInactivos.size();
         for(int i=0;i<tamano;i++)
         {
           AtributosDAO atriDAO = new AtributosDAO(cf);
           String CodAtri =request.getParameter("Activar"+i);
           Object obCodatri = request.getParameter("Activar"+i);;
           if(obCodatri!=null)
           {
              try
              {
                AtributoVO AtriVO = new AtributoVO();
                AtriVO = atriDAO.GetPropiedadesAtri(CodAtri,"I"); 
                int Orden = 0;
                int Nomb = 0;
                            
                Nomb = objCons.getNombre(AtriVO.getNombre(),strCodSubpro,"A");
                Orden = objCons.getOrden(AtriVO.getOrden(),strCodSubpro,"A");
                
                if (Orden == 0 && Nomb == 0)
                {
                
                  int actualizo = atriDAO.ActivarAtributo(strCodSubpro,CodAtri);
                  cf.closeConnection(atriDAO.getConn());
                }else
                {
                  lError.add(AtriVO);
                  request.setAttribute("msg1","No se pueden activar los siguientes Atributos");
                }
              }catch(SQLException e){
				System.err.println("/******** TDSUB - cwsub");
				e.printStackTrace();
				System.err.println("TDSUB - cwsub ********/");
              }
           }  
         }
         if(lError.size()>0)
         {
           request.setAttribute("ListaError",lError);
         }
     }finally
      {
        try{
          cf.closeConnection(objCons.getConn());
        }catch(SQLException e)
        {
			System.err.println("/******** TDSUB - cwsub");
			e.printStackTrace();
			System.err.println("TDSUB - cwsub ********/");
        }
      }
    return mapping.findForward("success");
  }
}